function [R]=quater2rot(q)

R=1/sum(q.^2)*[q(1)^2+q(2)^2-q(3)^2-q(4)^2 2*(q(2)*q(3)-q(1)*q(4))     2*(q(2)*q(4)+q(1)*q(3))
                2*(q(2)*q(3)+q(1)*q(4))     q(1)^2-q(2)^2+q(3)^2-q(4)^2 2*(q(3)*q(4)-q(1)*q(2))
                2*(q(2)*q(4)-q(1)*q(3))     2*(q(3)*q(4)+q(1)*q(2))     q(1)^2-q(2)^2-q(3)^2+q(4)^2];

return;

q=rand(4,1)

[R]=quater2rot(q)

q(1)=sqrt((R(1,1)+1+R(2,2)+R(3,3))/4)
q(2)=sqrt((R(1,1)+1-R(2,2)-R(3,3))/4)
q(2)=(R(3,2)-R(2,3))/(2*q(1));
q(3)=(R(1,3)-R(3,1))/(2*q(1));
q(4)=(R(2,1)-R(1,2))/(2*q(1));






acos((R(1,1)+R(2,2)+R(3,3)-1)/2)